go/types.Named.underlying (field)

21 uses

	go/types (current package)
		decl.go#L584: 	if named.underlying == nil {
		decl.go#L585: 		named.underlying = Typ[Invalid]
		decl.go#L595: 		named.underlying = Typ[Invalid]
		named.go#L18: 	underlying Type           // possibly a *Named during setup; never a *Named once set up completely
		named.go#L58: 		t.tparams, t.underlying, t.methods = t.resolver(ctxt, t)
		named.go#L59: 		t.fromRHS = t.underlying // for cycle detection
		named.go#L66: 	typ := &Named{check: check, obj: obj, orig: orig, fromRHS: underlying, underlying: underlying, tparams: tparams, methods: methods}
		named.go#L89: 	switch t.underlying.(type) {
		named.go#L209: 	t.resolve(nil).underlying = underlying
		named.go#L226: func (t *Named) Underlying() Type { return t.resolve(nil).underlying }
		named.go#L314: 		n.underlying = u
		named.go#L322: 		n.underlying = typ
		named.go#L360: 	assert(n.orig.underlying != nil)
		named.go#L364: 	if _, unexpanded := n.orig.underlying.(*Named); unexpanded {
		named.go#L379: 		underlying = n.check.subst(instPos, n.orig.underlying, smap, ctxt)
		named.go#L388: 				if iface == n.orig.underlying {
		named.go#L412: 		return t.underlying
		object.go#L243: 			panic(fmt.Sprintf("invalid underlying type %T", t.underlying))
		typestring.go#L213: 			if t == universeComparable.Type().(*Named).underlying {
		validtype.go#L66: 		if t.underlying == Typ[Invalid] {
		validtype.go#L82: 			t.underlying = Typ[Invalid] // t is in the current package (no race possibility)